using System.Collections;
using System.Collections.Generic;
using QFramework;
using UnityEngine;
using UnityEngine.UI;

//用来单人模式下的前三名的处理
//TODO 这里现在简化很多，TOP6 更新UI之后只需要TOP3
public class TopSix : MonoBehaviour
{
    // Start is called before the first frame update
    public List<GameObject> Tops;
    void Start()
    {
        //监听一下单人模式，单题结算汇总完成的数据
        StringEventSystem.Global.Register(EventID.SingleJieSuanTop3, (List<GameObject> students) =>{
            OnSingleJieSuanTop3(students);
        }).UnRegisterWhenGameObjectDestroyed(gameObject);
         // 如果学生数量少于3，清空剩余的 Tops
        for (int i = 0; i < 3; i++)
        {
            Tops[i].gameObject.SetActive(false); // 隐藏多余的 UI 元素
        }

    }

    // Update is called once per frame
    void OnSingleJieSuanTop3(List<GameObject> students)
    {
        // 取前三名展示
        int countToDisplay = Mathf.Min(students.Count, 3); // 取实际数量和3中的较小值

        for (int i = 0; i < countToDisplay; i++)
        {
            // 更新头像
            ImageLoader.Instance.LoadImageFromUrl(
                Tops[i].transform.Find("Avatar").GetComponent<Image>(),
                students[i].GetComponentInChildren<Student>().getAvatarUrl()
            );
            Tops[i].transform.Find("nick").GetComponent<Text>().text = students[i].GetComponentInChildren<Student>().getNickname();
            Tops[i].transform.Find("liansheng").GetComponent<Text>().text = students[i].GetComponentInChildren<Student>().getJifen().ToString();
            Tops[i].SetActive(true);
        }     
        // 如果学生数量少于3，清空剩余的 Tops
        for (int i = countToDisplay; i < Tops.Count; i++)
        {
            Tops[i].gameObject.SetActive(false); // 隐藏多余的 UI 元素
        }

    }
}
